Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Acceso a datos con ADO .NET (página 2)




Enviado por richard



Partes: 1, 2

Como se puede comprobar la tabla que se ha almacenado
en el objeto DataSet la hemos llamado Empleados. Para acceder a
dicha tabla no tenemos nada más que hacer la referencia
correspondiente a través de la colección Tables del
objeto DataSet. Para almacenar la tabla dentro del objeto DataSet
hemos tenido que hacer uso de un objeto de la clase
SqlDataAdapter, que cumple la función de puente o
comunicación entre el almacén de datos y el objeto
DataSet.

Monografias.com

Los objetos
DataAdapter

Como ya hemos comentado, los objetos DataAdapter
(SqlDataAdapter y OleDbDataAdapter) van a hacer la función
de puente entre el almacén de los datos y el DataSet, nos
van a permitir cargar el DataSet desde el origen de los datos y
después nos va a permitir actualizar los datos en el
origen de datos con los del DataSet.

En el ejemplo anterior hemos utilizado el objeto
DataAdapter de una forma muy sencilla, este contenia una
sentencia SQL (1 objeto Command), pero también pueden
contener varios objetos Command.

El objeto DataAdapter va a poseer cuatro propiedades
que nos van a permitir asignar una serie de objetos

Command que van a realizar una operación
determinada con los datos, estas propiedades son las
siguientes:

SelectCommand: objeto de la clase
Command que se va a utilizar para ejecutar una sentencia Select
de

SQL(Predeterminado).

InsertCommand: objeto de la clase
Command (SqlCommand o OleDbCommand), que se va a utilizar para
agregar un nuevo registro.

UpdateCommand: objeto de la clase
Command que se va a utilizar para realizar una
modificación de los datos.

DeleteCommand: objeto de la clase
Command que se va a utilizar para realizar una eliminacion de
registros.

Un método destacable de las clases
SqlDataAdapter/OleDbDataAdapter es el método
Fill(), que ejecuta el comando de selección que se
encuentra asociado a la propiedad SelectCommand, los datos
obtenidos del origen de datos se cargarán en el objeto
DataSet que pasamos por parámetro.

En la Figura 4 se puede ver la relación entre
los objetos DataAdapter y el objeto DataSet.

Monografias.com

Figura 4

Ahora crearemos un ejemplo de uso para el objeto
SqlDataAdapter, el cual va a contener dos objetos SqlCommand, uno
que permite la inserción, que se asignará a la
propiedad InsertCommand del objeto SqlDataAdapter,
y otro que permite realizar una sentencia de selección
sobre la tabla de la base de datos y cargar el objeto DataSet con
los mismos, este objeto SqlCommand se asignará a la
propiedad SelectCommand. Como ya hemos dicho
anteriormente, al ejecutar el método Fill() del objeto
SqlDataAdapter se ejecutará el comando de la propiedad
SelectCommand.

Imports System.Data.SqlClient

Public Class VBNetDataset2

Inherits
System.Windows.Forms.Form

Dim conexion As SqlConnection

Dim adaptador As SqlDataAdapter

Dim cmdInsercion, cmdSeleccion As
SqlCommand

Dim sqlInsercion As String = _

"INSERT into TablaEmpleados (Codigo,
Nombres, DNI) VALUES(@codigo,@nombres,@dni)" Dim sqlSeleccion As
String = _

"select Codigo, Nombres, DNI From
TablaEmpleados"

Dim dst As DataSet

Private Sub VBNetDataset2_Load(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load

conexion = New
SqlConnection("server=(local);database=northwind;uid=sa;pwd=")

adaptador = New SqlDataAdapter

cmdInsercion = New SqlCommand(sqlInsercion,
conexion)

cmdSeleccion = New SqlCommand(sqlSeleccion,
conexion)

adaptador.InsertCommand = cmdInsercion
adaptador.SelectCommand = cmdSeleccion dst = New
DataSet

MuestraDatos() End Sub

Sub MuestraDatos() Try

conexion.Open()

dst.Tables.Clear()

adaptador.Fill(dst,
"Empleados")

DataGrid1.DataSource =
dst.Tables("Empleados").DefaultView lblres.Text =
String.Format("Hay {0} Registros en la Tabla",

dst.Tables("Empleados").DefaultView.Count)

Catch ex As
SqlException

MsgBox("se ha producido una
excepción: " + ex.Message, 16, Me.Text)

Finally
conexion.Close()

End Try

End Sub

Private Sub btnsalir_Click(ByVal sender
As System.Object, ByVal e As System.EventArgs) _ Handles
btnsalir.Click

Me.Close()

End Sub

Private Sub btnnuevo_Click(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles
btnnuevo.Click

Limpiar_Textos(Me)

End Sub

Private Sub btnagregar_Click(ByVal
sender As System.Object, ByVal e As System.EventArgs) Handles
btnagregar.Click

Dim res As Int16

Try conexion.Open()

adaptador.InsertCommand.Parameters.Add("@nombres",
txtnombres.Text)

adaptador.InsertCommand.Parameters.Add(
_

New SqlParameter("@codigo",
SqlDbType.Char, 5))

adaptador.InsertCommand.Parameters("@codigo").Value =
txtcodigo.Text adaptador.InsertCommand.Parameters.Add("@dni",
txtdni.Text)

res =
adaptador.InsertCommand.ExecuteNonQuery()

MsgBox("Se ha añadido " +
res.ToString + " registro", 64, Me.Text)

Catch ex As
SqlException

MsgBox("se ha producido una
excepción: " + ex.Message, 16, Me.Text)
Finally

conexion.Close() End
Try

MuestraDatos() End Sub

Protected Overrides Sub Finalize()
conexion.Dispose() adaptador.Dispose() dst.Dispose()
MyBase.Finalize()

End Sub

End Class

En un Modulo Estandar agregar lo
siguiente:

Module Module1

Function Solo_Letras(ByVal Tecla As
Integer) As Boolean

Solo_Letras = True

Select Case Tecla

Case 8, 32, 65 To 90, 97 To
122

Case Else

Solo_Letras = False

End Select

End Function

Function Solo_Numeros(ByVal Tecla As
Integer) As Boolean

Solo_Numeros = True

Select Case Tecla

Case 8, 48 To 57

Case Else

Solo_Numeros = False

End Select

End Function

Sub Limpiar_Textos(ByVal Frm As Form)
Dim ctl As Control

For Each ctl In
Frm.Controls

If TypeOf ctl Is TextBox Then ctl.Text
= "" Next

End Sub

Sub Validar_Textos(ByVal Frm As Form)
Dim ctl As Control

For Each ctl In
Frm.Controls

If TypeOf ctl Is TextBox
Then

If ctl.Text = "" Then

MsgBox("El campo " & ctl.Name &
" No puede estar en blanco", 16, "Error")

ctl.Focus() End If

End If

Next

End Sub

Function Valida_Textos(ByVal Frm As
Form) As Boolean

Dim ctl As Control

Valida_Textos = True

For Each ctl In
Frm.Controls

If TypeOf ctl Is TextBox
Then

If ctl.Text = "" Then

Valida_Textos = False

MsgBox("El campo " & ctl.Name &
" No puede estar en blanco", 16, "Error")

ctl.Focus() End If

End If

Next

End Function

End Module

En Ia Figura 5 se puede apreciar Ia
ejecuci6n de este ejemplo del objeto SqiD

Monografias.com

 

 

Autor:

Richard

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter